home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 41.zip
/
BS1 part 41
/
Devpac 2.12 disk 2.adf
/
include.cbm
/
devices
/
serial.i
< prev
next >
Wrap
Text File
|
1987-03-31
|
7KB
|
183 lines
*****************************************************************
* *
* Copyright 1985, Commodore Amiga Inc. All rights reserved. *
* No part of this program may be reproduced, transmitted, *
* transcribed, stored in retrieval system, or translated into *
* any language or computer language, in any form or by any *
* means, electronic, mechanical, magnetic, optical, chemical, *
* manual or otherwise, without the prior written permission of *
* Commodore-Amiga Incorporated, 983 University Ave. Building #D,*
* Los Gatos, California, 95030 *
* *
*****************************************************************
*****************************************************************
*
* serial.i -- external declarations for Serial Port Driver
*
* SOURCE CONTROL
* ------ -------
* $Header: serial.i,v 33.1 86/04/29 14:19:10 barry Exp $
*
* $Locker: $
*
*****************************************************************
IFND DEVICES_SERIAL_I
DEVICES_SERIAL_I SET 1
IFND EXEC_STRINGS_I
include 'exec/strings.i'
ENDC !EXEC_STRINGS_I
IFND EXEC_IO_I
include 'exec/io.i'
ENDC !EXEC_IO_I
*--------------------------------------------------------------------
*
* Useful constants
*
*--------------------------------------------------------------------
*
SER_CTL EQU $1113 ; default char's for xON,Xoff.
SER_DBAUD EQU 9600 ; default baud
*
*--------------------------------------------------------------------
*
* Driver Specific Commands
SDCMD_QUERY EQU CMD_NONSTD
SDCMD_BREAK EQU CMD_NONSTD+1
SDCMD_SETPARAMS EQU CMD_NONSTD+2
SER_DEVFINISH EQU CMD_NONSTD+2 ; number of device comands
*--------------------------------------------------------------------
*-- SERIALNAME is a generic macro to get the name of the driver. This
*-- way if the name is ever changed you will pick up the change
*-- automatically.
*--
*-- Normal usage would be:
*--
*-- internalName: SERIALNAME
*--
SERIALNAME: MACRO
STRING 'serial.device'
ENDM
BITDEF SER,XDISABLED,7 ; SERFLAGS xOn-xOff feature disabled bit
BITDEF SER,EOFMODE,6 ; " EOF mode enabled bit
BITDEF SER,SHARED,5 ; " non-exclusive access
BITDEF SER,RAD_BOOGIE,4 ; " high-speed mode active
BITDEF SER,QUEUEDBRK,3 ; " queue this Break ioRqst
BITDEF SER,7WIRE,2 ; " RS232 7-wire protocol
BITDEF SER,PARTY_ODD,1 ; " use-odd-parity bit
BITDEF SER,PARTY_ON,0 ; " parity-enabled bit
BITDEF IOSER,QUEUED,6 ; IO_FLAGS rqst-queued bit
BITDEF IOSER,ABORT,5 ; " rqst-aborted bit
BITDEF IOSER,ACTIVE,4 ; " rqst-qued-or-current bit
BITDEF IOST,XOFFREAD,4 ; IOST_HOB receive currently xOFF'ed
BITDEF IOST,XOFFWRITE,3 ; " transmit currently xOFF'ed
BITDEF IOST,READBREAK,2 ; " break was latest input
BITDEF IOST,WROTEBREAK,1 ; " break was latest output
BITDEF IOST,OVERRUN,0 ; " status word RBF overrun
* BITDEF's (longword field) ; IO_EXTFLAGS (extended flag longword)
BITDEF SEXT,MSPON,1 ; " use mark-space parity,not odd-even
BITDEF SEXT,MARK,0 ; " if mark-space, use mark
*
**************************************************************************************
STRUCTURE TERMARRAY,0
ULONG TERMARRAY_0
ULONG TERMARRAY_1
LABEL TERMARRAY_SIZE
*****************************************************************
* CAUTION !! IF YOU ACCESS the serial.device, you MUST (!!!!) use an
* IOEXTSER-sized structure or you may overlay innocent memory, okay ?!
*****************************************************************
STRUCTURE IOEXTSER,IOSTD_SIZE
* STRUCT MsgNode
* 0 APTR Succ
* 4 APTR Pred
* 8 UBYTE Type
* 9 UBYTE Pri
* A APTR Name
* E APTR ReplyPort
* 12 UWORD MNLength
* STRUCT IOExt
* 14 APTR IO_DEVICE
* 18 APTR IO_UNIT
* 1C UWORD IO_COMMAND
* 1E UBYTE IO_FLAGS
* 1F UBYTE IO_ERROR
* STRUCT IOStdExt
* 20 ULONG IO_ACTUAL
* 24 ULONG IO_LENGTH
* 28 APTR IO_DATA
* 2C ULONG IO_OFFSET
*
* 30
ULONG IO_CTLCHAR ; control char's (order = xON,xOFF,rsvd,rsvd)
ULONG IO_RBUFLEN ; length in bytes of serial port's read buffer
ULONG IO_EXTFLAGS ; additional serial flags (see bitdefs above)
ULONG IO_BAUD ; baud rate requested (true baud)
ULONG IO_BRKTIME ; duration of break signal in MICROseconds
STRUCT IO_TERMARRAY,TERMARRAY_SIZE ; termination character array
UBYTE IO_READLEN ; bits per read char (bit count)
UBYTE IO_WRITELEN ; bits per write char (bit count)
UBYTE IO_STOPBITS ; stopbits for read (count)
UBYTE IO_SERFLAGS ; see SERFLAGS bit definitions above
UWORD IO_STATUS ; status of serial port, as follows:
*
* BIT ACTIVE FUNCTION
* 0 low busy
* 1 low paper out
* 2 low select
* 3 low Data Set Ready
* 4 low Clear To Send
* 5 low Carrier Detect
* 6 low Ready To Send
* 7 low Data Terminal Ready
* 8 high read overrun
* 9 high break sent
* 10 high break received
* 11 high transmit x-OFF'ed
* 12 high receive x-OFF'ed
* 13-15 reserved
*
LABEL IOEXTSER_SIZE
*********************************************************************************
*--------------------------------------------------------------------
*
* Driver error definitions
*
*--------------------------------------------------------------------
SerErr_DevBusy EQU 1
SerErr_BaudMismatch EQU 2
SerErr_InvBaud EQU 3
SerErr_BufErr EQU 4
SerErr_InvParam EQU 5
SerErr_LineErr EQU 6
SerErr_NotOpen EQU 7
SerErr_PortReset EQU 8
SerErr_ParityErr EQU 9
SerErr_InitErr EQU 10
SerErr_TimerErr EQU 11
SerErr_BufOverflow EQU 12
SerErr_NoDSR EQU 13
SerErr_NoCTS EQU 14
SerErr_DetectedBreak EQU 15
ENDC !DEVICES_SERIAL_I